文章目录
  1. 1. [Nginx] 在Linux下的启动、停止和重加载

[Nginx] 在Linux下的启动、停止和重加载

Nginx的启动

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

其中-c参数指定配置文件路径。 

Nginx的停止

Nginx支持以下几种信号控制: - TERM, INT 快速关闭 - QUIT 从容关闭 - HUP 平滑重启 - USR1 重新打开日志文件,在切割文件时用处大 - USR2 平滑升级 - WINCH 从容关闭工作进程 我们可以通过信号停止Nginx主进程,首先,我们需要通过ps -ef|grep命令获得master进程的PID,或者通过cat pid文件获得主进程号。下面是几个典型的停止语句:

#从容停止Nginx

kill -QUIT master进程号

#快速停止Nginx

kill -TERM master进程号

#强制停止Nginx

kill -9 master进程号

\

Nginx的重加载

如果改变了配置文件,想重启让其生效,同样可以通过发送系统信号给Nginx主进程,不过,在重启之前,要确认配置文件的语法是正确的,否则将不会加载新的配置项。 通过以下语句测试配置文件语法是否正确:

/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf

其中-t表示测试,并不真正执行。 然后,通过以下命令重加载Nginx配置:

kill -HUP master进程号

执行上面命令之后,Nginx运行新的工作进程,旧工作进程继续为已有的连接服务,等所有旧的连接成功后,旧的工作进程才被关闭。

\

Nginx的启动脚本

#!/bin/sh

# chkconfig: 2345 85 15

# description:Nginx Server

\

NGINX_HOME=/usr/local/nginx

NGINX_SBIN=$NGINX_HOME/sbin/nginx

NGINX_CONF=$NGINX_HOME/conf/nginx.conf

NGINX_PID=$NGINX_HOME/logs/nginx.pid

\

NGINX_NAME=”Nginx”

\

. /etc/rc.d/init.d/functions

\

if [ ! -f $NGINX_SBIN ]

then

    echo “$NGINX_NAME startup: $NGINX_SBIN not exists! “

    exit

fi

\

start() {

    $NGINX_SBIN -c $NGINX_CONF

    ret=$?

    if [ $ret -eq 0 ]; then

        action $“Starting $NGINX_NAME: “ /bin/true

    else

        action $“Starting $NGINX_NAME: “ /bin/false

    fi

}

\

stop() {

    kill `cat $NGINX_PID`

    ret=$?

    if [ $ret -eq 0 ]; then

        action $“Stopping $NGINX_NAME: “ /bin/true

    else

        action $“Stopping $NGINX_NAME: “ /bin/false

    fi

}

\

restart() {

    stop

    start

}

\

check() {

    $NGINX_SBIN -c $NGINX_CONF -t

}

\

\

reload() {

    kill -HUP `cat $NGINX_PID` && echo “reload success!”

}

\

relog() {

    kill -USR1 `cat $NGINX_PID` && echo “relog success!”

}

\

case “$1” in

    start)

        start

        ;;

    stop)

        stop

        ;;

    restart)

        restart

        ;;

    check|chk)

        check

        ;;

    status)

        status -p $NGINX_PID

        ;;

    reload)

        reload

        ;;

    relog)

        relog

        ;;

    *)

       
echo $“Usage: $0 {start|stop|restart|reload|status|check|relog}”

        exit 1

esac

上面是nginx的启动脚本,只要把它拷贝至/etc/init.d目录下,就可以通过service nginx start等目录操作nginx。

\

\

开机自动启动nginx

如果需要开机启动服务,保存好 /etc/init.d/nginx文件后,

执行以下命令:

chkconfig –add ningx

\

chkconfig
–level nginx 2345 on

如果出现nginx不支持此服务,

则需要在#!/bin/sh 下添加如下:

 #
chkconfig: - 85 15


再次尝试,ok…..

文章目录
  1. 1. [Nginx] 在Linux下的启动、停止和重加载